package com.java.yz.day16.udpDemo1;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

/*
    1:建立udp的socket服务.
    2:通过receive方法接收数据
    3:将收到的数据存储到数据包对象中
    4:通过数据包对象的功能来完成对接收到数据进行解析.
    5:可以对资源进行关闭
 */
public class udpReceiveDemo1 {
    public static void main(String[] args) {
        //1:建立udp的socket服务.
        try {
            DatagramSocket socket = new DatagramSocket(12345);  //传入刚才的端口号
        //创建新的数据接收包
            byte[] bytes = new byte[1024];
            DatagramPacket packet = new DatagramPacket(bytes, bytes.length);
        //2:通过receive方法接收数据
        //3:将收到的数据存储到数据包对象中
            socket.receive(packet);



        //4:通过数据包对象的功能来完成对接收到数据进行解析.
            String ip = packet.getAddress().getHostAddress();
            String s = new String(packet.getData(),0,packet.getLength());
            System.out.println(ip+":"+s);


        //5:可以对资源进行关闭
        socket.close();

        }
        catch (SocketException e) {
            throw new RuntimeException(e);
        }catch (IOException e) {
            e.printStackTrace();
        }

    }
}
